package cn.iocoder.yudao.module.measure.dal.dataobject.protocol;

import com.baomidou.mybatisplus.annotation.*;
import lombok.*;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;
import static com.baomidou.mybatisplus.annotation.SqlCondition.EQUAL;
import static com.baomidou.mybatisplus.annotation.SqlCondition.LIKE;

/**
 * <p>
 * 实体类
 * 协议报文数据内容配置表
 * </p>
 *
 * @author zhengbzh
 * @date 2025-05-23 11:46:38
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString(callSuper = true)
@Accessors(chain = true)
@Builder
@TableName("template_device_upload_data_config")
public class TemplateDeviceUploadDataConfig   implements Serializable {


    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.INPUT)
    protected Long id;

    @TableField(value = "created_time", fill = FieldFill.INSERT)
    protected LocalDateTime createdTime;

    @TableField(value = "created_by", fill = FieldFill.INSERT)
    protected Long createdBy;

    @TableField(value = "updated_time", fill = FieldFill.INSERT_UPDATE)
    protected LocalDateTime updatedTime;

    @TableField(value = "updated_by", fill = FieldFill.INSERT_UPDATE)
    protected Long updatedBy;

    /**
     * 报文id
     */
    @TableField(value = "message_id", condition = EQUAL)
    private Long messageId;
    /**
     * 报文内容类型
     */
    @TableField(value = "message_content_type", condition = LIKE)
    private String messageContentType;
    /**
     * 报文起始位
     */
    @TableField(value = "start_bit_index", condition = EQUAL)
    private Integer startBitIndex;
    /**
     * 报文结束位
     */
    @TableField(value = "end_bit_index", condition = EQUAL)
    private Integer endBitIndex;
    /**
     * 报文数据类型 #{NUMBER:00,数字;STRING:01,字符}
     * {@code @Echo(api=EchoApi.DICTIONARY_ITEM_FEIGN_CLASS, dictType = "DEVICE_BIT_DATA_TYPE")}
     */
    @TableField(value = "bit_data_type", condition = EQUAL)
    private String bitDataType;

    /**
     * 数据单位
     */
    @TableField(value = "data_unit", condition = LIKE)
    private String dataUnit;
    /**
     * 后处理方法
     */
    @TableField(value = "after_deal_method", condition = LIKE)
    private String afterDealMethod;



}
